Amazon DocumentDB MongoDB API-এর সাথে সামঞ্জস্যপূর্ণ, তাই আপনি MongoDB-এর মতোই query এবং aggregation অপারেশন করতে পারেন। এখানে, আমি কিছু সাধারণ query এবং aggregation উদাহরণ প্রদান করছি যা আপনি DocumentDB-তে ব্যবহার করতে পারেন।
Query উদাহরণ
Query অপারেশন ব্যবহার করে আপনি ডেটাবেস থেকে নির্দিষ্ট ডেটা অনুসন্ধান করতে পারেন। DocumentDB MongoDB এর মতো find(), filter() ইত্যাদি কুয়েরি অপারেশন সমর্থন করে।
১. Simple Query (ডেটা ফিল্টারিং)
এখানে একটি সাধারণ find() কুয়েরি ব্যবহার করা হয়েছে, যা age ফিল্ডের মান ৩০ এর বেশি এমন সব ডকুমেন্ট খুঁজে বের করবে।
db.users.find({
"age": { "$gt": 30 }
})
Explanation:
$gt: এটি "greater than" অপারেটর। এখানে,ageফিল্ডের মান ৩০ এর বেশি এমন ডকুমেন্ট খোঁজা হচ্ছে।
২. Multiple Conditions Query
এখানে age ৩০ এর বেশি এবং city "New York" এর সমন্বয়ে দুটি শর্তে ডেটা অনুসন্ধান করা হয়েছে।
db.users.find({
"age": { "$gt": 30 },
"city": "New York"
})
Explanation:
- দুটি শর্ত একসাথে প্রদান করা হয়েছে। এটি AND শর্তে কাজ করে, অর্থাৎ
age৩০ এর বেশি এবংcity"New York" হওয়া দরকার।
৩. Projection Query
আপনি শুধুমাত্র নির্দিষ্ট ফিল্ডগুলো নির্বাচন করতে পারেন projection এর মাধ্যমে।
db.users.find(
{ "age": { "$gt": 30 } },
{ "name": 1, "age": 1 }
)
Explanation:
- এখানে,
age৩০ এর বেশি এমন সমস্ত ডকুমেন্ট থেকে শুধুnameএবংageফিল্ডগুলো নির্বাচিত হচ্ছে।1মানে নির্বাচন করা, এবং0মানে বাদ দেওয়া।
৪. Sorting Query
এখানে age ফিল্ড অনুসারে উর্ধ্বমুখী (ascending) এবং নাম অনুসারে নিম্নমুখী (descending) সাজানোর কুয়েরি দেয়া হয়েছে।
db.users.find().sort({ "age": 1, "name": -1 })
Explanation:
1মানে উর্ধ্বমুখী সাজানো এবং-1মানে নিম্নমুখী সাজানো।
Aggregation উদাহরণ
Aggregation হলো এমন একটি প্রক্রিয়া যেখানে আপনি একাধিক কুয়েরি অপারেশন একত্রে ব্যবহার করে ডেটাকে প্রসেস এবং বিশ্লেষণ করতে পারেন। MongoDB এবং DocumentDB-তে এটি aggregation pipeline নামক একটি শক্তিশালী টুলের মাধ্যমে করা হয়।
১. Grouping and Counting
এটি একটি aggregation pipeline যেখানে age অনুসারে ডেটা গ্রুপ করা হচ্ছে এবং প্রতিটি গ্রুপের জন্য কুয়েরি করা হচ্ছে কতগুলি রেকর্ড আছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "count": { "$sum": 1 } } }
])
Explanation:
$group: এটি ডেটাকে নির্দিষ্ট ফিল্ড (age) অনুযায়ী গ্রুপ করে।$sum: প্রতিটি গ্রুপের জন্য ডকুমেন্টের সংখ্যা যোগ করা হচ্ছে।
২. Grouping with Multiple Fields
এখানে age এবং city ফিল্ডের ভিত্তিতে ডেটা গ্রুপ করা হচ্ছে এবং তাদের ওপর aggregation করা হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": { "age": "$age", "city": "$city" }, "total": { "$sum": 1 } } }
])
Explanation:
- গ্রুপিং করা হচ্ছে
ageএবংcityএর কম্বিনেশন দিয়ে এবং সেই গ্রুপের জন্য ডকুমেন্টের সংখ্যা হিসাব করা হচ্ছে।
৩. Filtering After Grouping
এখানে, প্রথমে গ্রুপিং করা হচ্ছে এবং তারপর total মানে ১০ বা তার বেশি থাকা গ্রুপগুলো ফিল্টার করা হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "total": { "$sum": 1 } } },
{ "$match": { "total": { "$gte": 10 } } }
])
Explanation:
$match: গ্রুপ করার পর, আমরাtotalএর মান ১০ বা তার বেশি এমন গ্রুপগুলো ফিল্টার করছি।
৪. Sorting After Aggregation
এখানে, গ্রুপ করার পরে আউটপুটকে উর্ধ্বমুখীভাবে সাজানো হচ্ছে।
db.users.aggregate([
{ "$group": { "_id": "$age", "total": { "$sum": 1 } } },
{ "$sort": { "total": -1 } }
])
Explanation:
$sort: গ্রুপ করা ডেটাকেtotalফিল্ড অনুসারে descending (নিম্নমুখী) সাজানো হচ্ছে।
৫. Using $project for Field Selection
$project স্টেজের মাধ্যমে আপনি আগের স্টেজ থেকে নির্দিষ্ট ফিল্ডগুলো নির্বাচন করতে পারেন।
db.users.aggregate([
{ "$group": { "_id": "$age", "total": { "$sum": 1 } } },
{ "$project": { "_id": 0, "age": "$_id", "total": 1 } }
])
Explanation:
$project: এখানে_idকে বাদ দিয়েageএবংtotalফিল্ডগুলো নির্বাচন করা হচ্ছে।
সারাংশ
Query এবং Aggregation MongoDB এবং Amazon DocumentDB-তে শক্তিশালী ফিচার। Query অপারেশন ব্যবহার করে আপনি দ্রুত ডেটা অনুসন্ধান করতে পারেন, আর Aggregation আপনাকে আরও উন্নত বিশ্লেষণ এবং ডেটা প্রসেসিং করতে সাহায্য করে। Aggregation Pipeline খুবই শক্তিশালী, যেখানে বিভিন্ন স্টেজে ডেটাকে প্রসেস, গ্রুপ, ফিল্টার, সাজানো এবং ট্রান্সফর্ম করা যায়। DocumentDB-তে এই ধরনের অপারেশন MongoDB API-এর মাধ্যমে করা সম্ভব, যা ডেটাবেসের কার্যকারিতা এবং বিশ্লেষণ প্রক্রিয়াকে আরও উন্নত করে তোলে।
Read more